#!/bin/bash

# 配置变量
PROJECT_DIR="/www/wwwroot/service/yzt_assistant"  # 项目目录
ENV_FILE=".env"                        # 环境文件
CURRENT_ENV_FILE=".env.formal"           # 当前环境文件
WEB_USER="www"                         # Web服务用户
WEB_GROUP="www"                        # Web服务用户组
COMPOSER_URL="/usr/bin/composer"
PHP82_URL="/www/server/php/82/bin/php"

# 检查是否为root用户
if [ "$(id -u)" != "0" ]; then
    echo "❌ 请使用root用户执行此脚本！"
    exit 1
fi

# 提示用户确认更新
while true; do
    read -r -p "是否更新IM正式环境？(y/n): " answer
    case "$answer" in
        [yY])
            echo "✅ 开始更新操作..."
            break  # 跳出循环，继续执行后续操作
            ;;
        [nN])
            echo "❎ 已取消更新。"
            exit 0
            ;;
        *)
            echo "⚠️ 输入无效，请输入 y 或 n！"
            ;;
    esac
done

# 检查项目目录是否存在
if [ ! -d "$PROJECT_DIR" ]; then
    echo "❌ 项目目录不存在！"
    exit 1
fi


# 2. 拉取Git代码
echo "🔵 从Git更新新API代码"
cd $PROJECT_DIR || exit
git reset --hard HEAD
git pull origin master

# 3. 处理环境文件
echo "🔵 正在更新环境配置"
if [ -f "${PROJECT_DIR}/sh/${CURRENT_ENV_FILE}" ]; then
    # 备份当前环境文件
    if [ -f "${PROJECT_DIR}/${ENV_FILE}" ]; then
        cp "${PROJECT_DIR}/${ENV_FILE}" "${PROJECT_DIR}/${ENV_FILE}.bak"
    fi
    cp "${PROJECT_DIR}/sh/${CURRENT_ENV_FILE}" "${PROJECT_DIR}/${ENV_FILE}"
fi

# 4. 重新配置权限
echo "🔵 目录权限分配"

# 特殊目录处理（如需要写入的目录）
chown -R ${WEB_USER}:${WEB_GROUP} ${PROJECT_DIR}
chmod -R 755 ${PROJECT_DIR}
chown -R ${WEB_USER}:${WEB_GROUP} ${PROJECT_DIR}/runtime
chmod -R 777 ${PROJECT_DIR}/runtime

echo "🔵 组件更新"
sudo -u ${WEB_USER} ${COMPOSER_URL} install --no-dev -d ${PROJECT_DIR}

# 5. 重启Webman服务
echo "🔵 停止webman服务"
${PHP82_URL} ${PROJECT_DIR}/start.php stop
echo "🔵 启动webman服务"
${PHP82_URL} ${PROJECT_DIR}/start.php start -d

echo "✅ 更新完成!"

# /www/server/php/82/bin/php /www/wwwroot/service/yzt_assistant/start.php stop
# /www/server/php/82/bin/php /www/wwwroot/service/yzt_assistant/start.php start